package collection;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;

/** List */
public class ListDemo {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("one");
        list.add("two");
        list.add("three");
        list.add("four");
        list.add("five");
        list.add("five");
        System.out.println(list);//[one, two, three, four, five, five]
        System.out.println("-----------------------");

        //E get(int index):获取指定下标所对应的元素
        String e = list.get(2);//list集特有的方法
        System.out.println(e);//three

        Iterator it = list.iterator();
        while (it.hasNext()){
            System.out.println(it.next());
        }
        System.out.println("-----------------------");

        for (String s:list){
            System.out.println(s);
        }
        System.out.println("-----------------------");

        for (int i = 0;i<list.size();i++){
            System.out.println(list.get(i));//list集遍历时要用list.get()方法
        }
        System.out.println("----------------------");

        //E set(int index,E e):将给定元素设置到指定位置，返回被替换的元素--一般不接受
        //list.set(2,"six");//将list中下标为2的元素设置成six---常规用法
        System.out.println("list:"+list);
        String old = list.set(0,"zero");//将list中下标为0的元素设置成zero,同时将原数据返回old
        System.out.println("list:"+list+",old:"+old);

        //E remove(int index):
        //删除指定位置元素，并返回指定位置元素
        //list.remove(2); //删除下标为2的元素---常规用法
        System.out.println(list);
        String s = list.remove(2);//删除下标为2的元素，并将被删除元素返回s
        System.out.println(list+","+s);//[zero, two, four, five, five]

        //void add(int index,E e):将给定元素e添加到index所指定位置，相当于插入操作
        list.add(3,"seven");
        System.out.println("list:"+list);

    }
}
